//! 交通相关字符集
//! 
//! 包含各种交通工具、交通标志、出行方式等相关的字符和图标

use std::collections::HashMap;
use crate::CharacterSet;

/// 获取交通相关字符集
pub fn get_transport_characters() -> HashMap<String, CharacterSet> {
    let mut characters = HashMap::new();

    // 陆地交通工具
    characters.insert("car".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("auto".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("automobile".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("truck".to_string(),
        CharacterSet::new()
            .simple("🚚")
            .icon("🚚")
            .bold("🚚")
    );

    characters.insert("bus".to_string(),
        CharacterSet::new()
            .simple("🚌")
            .icon("🚌")
            .bold("🚌")
    );

    characters.insert("van".to_string(),
        CharacterSet::new()
            .simple("🚐")
            .icon("🚐")
            .bold("🚐")
    );

    characters.insert("taxi".to_string(),
        CharacterSet::new()
            .simple("🚕")
            .icon("🚕")
            .bold("🚕")
    );

    characters.insert("cab".to_string(),
        CharacterSet::new()
            .simple("🚕")
            .icon("🚕")
            .bold("🚕")
    );

    characters.insert("motorcycle".to_string(),
        CharacterSet::new()
            .simple("🏍")
            .icon("🏍️")
            .bold("🏍")
    );

    characters.insert("bike".to_string(),
        CharacterSet::new()
            .simple("🚲")
            .icon("🚲")
            .bold("🚲")
    );

    characters.insert("bicycle".to_string(),
        CharacterSet::new()
            .simple("🚲")
            .icon("🚲")
            .bold("🚲")
    );

    characters.insert("scooter".to_string(),
        CharacterSet::new()
            .simple("🛵")
            .icon("🛵")
            .bold("🛵")
    );

    characters.insert("skateboard".to_string(),
        CharacterSet::new()
            .simple("🛹")
            .icon("🛹")
            .bold("🛹")
    );

    characters.insert("roller_skates".to_string(),
        CharacterSet::new()
            .simple("🛼")
            .icon("🛼")
            .bold("🛼")
    );

    // 火车
    characters.insert("train".to_string(),
        CharacterSet::new()
            .simple("🚂")
            .icon("🚂")
            .bold("🚂")
    );

    characters.insert("railway".to_string(),
        CharacterSet::new()
            .simple("🚂")
            .icon("🚂")
            .bold("🚂")
    );

    characters.insert("metro".to_string(),
        CharacterSet::new()
            .simple("🚇")
            .icon("🚇")
            .bold("🚇")
    );

    characters.insert("subway".to_string(),
        CharacterSet::new()
            .simple("🚇")
            .icon("🚇")
            .bold("🚇")
    );

    characters.insert("tram".to_string(),
        CharacterSet::new()
            .simple("🚊")
            .icon("🚊")
            .bold("🚊")
    );

    characters.insert("monorail".to_string(),
        CharacterSet::new()
            .simple("🚝")
            .icon("🚝")
            .bold("🚝")
    );

    characters.insert("bullet_train".to_string(),
        CharacterSet::new()
            .simple("🚄")
            .icon("🚄")
            .bold("🚄")
    );

    characters.insert("high_speed_train".to_string(),
        CharacterSet::new()
            .simple("🚄")
            .icon("🚄")
            .bold("🚄")
    );

    // 航空
    characters.insert("airplane".to_string(),
        CharacterSet::new()
            .simple("✈")
            .icon("✈️")
            .bold("✈")
    );

    characters.insert("plane".to_string(),
        CharacterSet::new()
            .simple("✈")
            .icon("✈️")
            .bold("✈")
    );

    characters.insert("flight".to_string(),
        CharacterSet::new()
            .simple("✈")
            .icon("✈️")
            .bold("✈")
    );

    characters.insert("helicopter".to_string(),
        CharacterSet::new()
            .simple("🚁")
            .icon("🚁")
            .bold("🚁")
    );

    characters.insert("heli".to_string(),
        CharacterSet::new()
            .simple("🚁")
            .icon("🚁")
            .bold("🚁")
    );

    characters.insert("jet".to_string(),
        CharacterSet::new()
            .simple("✈")
            .icon("✈️")
            .bold("✈")
    );

    characters.insert("airport".to_string(),
        CharacterSet::new()
            .simple("✈")
            .icon("✈️")
            .bold("✈")
    );

    // 海上交通
    characters.insert("ship".to_string(),
        CharacterSet::new()
            .simple("🚢")
            .icon("🚢")
            .bold("🚢")
    );

    characters.insert("boat".to_string(),
        CharacterSet::new()
            .simple("🚤")
            .icon("🚤")
            .bold("🚤")
    );

    characters.insert("yacht".to_string(),
        CharacterSet::new()
            .simple("⛵")
            .icon("⛵")
            .bold("⛵")
    );

    characters.insert("sailboat".to_string(),
        CharacterSet::new()
            .simple("⛵")
            .icon("⛵")
            .bold("⛵")
    );

    characters.insert("cruise".to_string(),
        CharacterSet::new()
            .simple("🚢")
            .icon("🚢")
            .bold("🚢")
    );

    characters.insert("ferry".to_string(),
        CharacterSet::new()
            .simple("⛴")
            .icon("⛴️")
            .bold("⛴")
    );

    characters.insert("canoe".to_string(),
        CharacterSet::new()
            .simple("🛶")
            .icon("🛶")
            .bold("🛶")
    );

    characters.insert("kayak".to_string(),
        CharacterSet::new()
            .simple("🛶")
            .icon("🛶")
            .bold("🛶")
    );

    characters.insert("anchor".to_string(),
        CharacterSet::new()
            .simple("⚓")
            .icon("⚓")
            .bold("⚓")
    );

    // 交通标志
    characters.insert("traffic_light".to_string(),
        CharacterSet::new()
            .simple("🚦")
            .icon("🚦")
            .bold("🚦")
    );

    characters.insert("stop_sign".to_string(),
        CharacterSet::new()
            .simple("🛑")
            .icon("🛑")
            .bold("🛑")
    );

    characters.insert("yield".to_string(),
        CharacterSet::new()
            .simple("⚠")
            .icon("⚠️")
            .bold("⚠")
    );

    characters.insert("speed_limit".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("construction".to_string(),
        CharacterSet::new()
            .simple("🚧")
            .icon("🚧")
            .bold("🚧")
    );

    characters.insert("road_work".to_string(),
        CharacterSet::new()
            .simple("🚧")
            .icon("🚧")
            .bold("🚧")
    );

    characters.insert("bridge".to_string(),
        CharacterSet::new()
            .simple("🌉")
            .icon("🌉")
            .bold("🌉")
    );

    characters.insert("tunnel".to_string(),
        CharacterSet::new()
            .simple("🚇")
            .icon("🚇")
            .bold("🚇")
    );

    // 停车场和加油站
    characters.insert("parking".to_string(),
        CharacterSet::new()
            .simple("P")
            .icon("🅿️")
            .bold("P")
    );

    characters.insert("garage".to_string(),
        CharacterSet::new()
            .simple("🏠")
            .icon("🏠")
            .bold("🏠")
    );

    characters.insert("gas_station".to_string(),
        CharacterSet::new()
            .simple("⛽")
            .icon("⛽")
            .bold("⛽")
    );

    characters.insert("fuel".to_string(),
        CharacterSet::new()
            .simple("⛽")
            .icon("⛽")
            .bold("⛽")
    );

    characters.insert("charging".to_string(),
        CharacterSet::new()
            .simple("🔌")
            .icon("🔌")
            .bold("🔌")
    );

    characters.insert("ev_charging".to_string(),
        CharacterSet::new()
            .simple("🔌")
            .icon("🔌")
            .bold("🔌")
    );

    // 交通状态
    characters.insert("traffic".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("jam".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("congestion".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("delay".to_string(),
        CharacterSet::new()
            .simple("⏰")
            .icon("⏰")
            .bold("⏰")
    );

    characters.insert("on_time".to_string(),
        CharacterSet::new()
            .simple("✅")
            .icon("✅")
            .bold("✅")
    );

    characters.insert("early".to_string(),
        CharacterSet::new()
            .simple("⏰")
            .icon("⏰")
            .bold("⏰")
    );

    characters.insert("late".to_string(),
        CharacterSet::new()
            .simple("⏰")
            .icon("⏰")
            .bold("⏰")
    );

    // 出行方式
    characters.insert("walk".to_string(),
        CharacterSet::new()
            .simple("🚶")
            .icon("🚶")
            .bold("🚶")
    );

    characters.insert("walking".to_string(),
        CharacterSet::new()
            .simple("🚶")
            .icon("🚶")
            .bold("🚶")
    );

    characters.insert("run".to_string(),
        CharacterSet::new()
            .simple("🏃")
            .icon("🏃")
            .bold("🏃")
    );

    characters.insert("running".to_string(),
        CharacterSet::new()
            .simple("🏃")
            .icon("🏃")
            .bold("🏃")
    );

    characters.insert("drive".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("driving".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("ride".to_string(),
        CharacterSet::new()
            .simple("🚲")
            .icon("🚲")
            .bold("🚲")
    );

    characters.insert("riding".to_string(),
        CharacterSet::new()
            .simple("🚲")
            .icon("🚲")
            .bold("🚲")
    );

    // 交通服务
    characters.insert("uber".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("lyft".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("ride_share".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("car_rental".to_string(),
        CharacterSet::new()
            .simple("🚗")
            .icon("🚗")
            .bold("🚗")
    );

    characters.insert("bike_share".to_string(),
        CharacterSet::new()
            .simple("🚲")
            .icon("🚲")
            .bold("🚲")
    );

    characters.insert("scooter_share".to_string(),
        CharacterSet::new()
            .simple("🛵")
            .icon("🛵")
            .bold("🛵")
    );

    // 交通票务
    characters.insert("ticket".to_string(),
        CharacterSet::new()
            .simple("🎫")
            .icon("🎫")
            .bold("🎫")
    );

    characters.insert("pass".to_string(),
        CharacterSet::new()
            .simple("🎫")
            .icon("🎫")
            .bold("🎫")
    );

    characters.insert("fare".to_string(),
        CharacterSet::new()
            .simple("💰")
            .icon("💰")
            .bold("💰")
    );

    characters.insert("payment".to_string(),
        CharacterSet::new()
            .simple("💳")
            .icon("💳")
            .bold("💳")
    );

    characters.insert("check_in".to_string(),
        CharacterSet::new()
            .simple("✅")
            .icon("✅")
            .bold("✅")
    );

    characters.insert("boarding".to_string(),
        CharacterSet::new()
            .simple("✈")
            .icon("✈️")
            .bold("✈")
    );

    characters.insert("departure".to_string(),
        CharacterSet::new()
            .simple("✈")
            .icon("✈️")
            .bold("✈")
    );

    characters.insert("arrival".to_string(),
        CharacterSet::new()
            .simple("🏁")
            .icon("🏁")
            .bold("🏁")
    );

    characters
}
